In communications networks, there may be a challenge to obtain good performance and capacity for a given communications protocol, its parameters and the physical environment in which the communications network is deployed.
For example, in digital communication the data to be communicated from a sender to a receiver can be divided into smaller data segments which are sent in packets. These data segments are provided with information of how the data protocol used for transferring the data from the sender to the receiver should map the packets and, in some cases, analyze if the data content of the packet is correct or not. This information can typically be predicted or known by the receiver. For example when using the Internet Protocol (IP), IP-packet headers are needed for each device along the way from the sender to the receiver to route the packet. In some communications networks, such as in Long Term Evolution (LTE) radio access networks, a served wireless device will typically never receive an IP-packet with the wrong IP-address (which is exploited by so-called header-compression).
Polar codes, as presented in “Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,” IEEE Trans. Inform. Theory, vol. 55, pp. 3051-3073, 2009, are capacity achieving codes, have an explicit construction (i.e., not randomly generated), and have an efficient encoding and decoding algorithm. Apart from the capacity achieving property, which is valid when code-lengths tend to infinity, they have shown good performance for shorter code-lengths.
One issue with existing mechanisms for decoding polar codes lies in the successive decoding (SD) procedure which follows the bit-order of the polar codes. Decoding of polar codes is prone to error propagation and hence, an error made early in the successive decoding procedure will not be corrected, but will instead propagate all the way to the end of the decoding. This will result in a decoding error. Additionally it is more likely to make an error early in the procedure than at the end, see FIG. 2. FIG. 2 shows an example of the amount of information for a bit with index i (for i=1, 2, . . . N where N is the total number of bits, and N=1024 in the example) can carry, given that all the previous bits 1, 2, . . . , i−1 are known, i.e., where the polar code decoding order is followed.
According to prior art, such as in “List decoding of polar codes,” IEEE International Symposium on Information Theory Proceedings (ISIT), Jul. 31, 2011-Aug. 5, 2011, this problem is mitigated by expanding a fixed list of bits (indices) that are most likely to be erroneous, i.e., bits which by the decoder are difficult to determine whether they are 0 or 1. Such techniques are commonly referred to as list-decoding. However, the list of any list-decoding procedure will grow very quickly. Large lists are advantageous for decoding performance but are disadvantages in terms of overhead and energy consumption.
Hence, there is still a need for improved mechanisms for encoding and decoding using polar codes.